package com.yiruantong.generator.constant;

/**
 * 代码生成通用常量
 *
 * @author rattan
 */
public interface GenConstants {
  /**
   * 单表（增删改查）
   */
  String TPL_CRUD = "crud";

  /**
   * 树表（增删改查）
   */
  String TPL_TREE = "tree";

  /**
   * 树编码字段
   */
  String TREE_CODE = "treeCode";

  /**
   * 树父编码字段
   */
  String TREE_PARENT_CODE = "treeParentCode";

  /**
   * 树名称字段
   */
  String TREE_NAME = "treeName";

  /**
   * 上级菜单ID字段
   */
  String PARENT_MENU_ID = "parentMenuId";

  /**
   * 上级菜单名称字段
   */
  String PARENT_MENU_NAME = "parentMenuName";

  /**
   * 数据库字符串类型
   */
  String[] COLUMNTYPE_STR = {
    "char", "varchar", "enum", "set", "nchar", "nvarchar", "varchar2", "nvarchar2"
  };

  /**
   * 数据库文本类型
   */
  String[] COLUMNTYPE_TEXT = {
    "tinytext",
    "text",
    "mediumtext",
    "longtext",
    "binary",
    "varbinary",
    "blob",
    "ntext",
    "image",
    "bytea"
  };

  /**
   * 数据库时间类型
   */
  String[] COLUMNTYPE_TIME = {
    "datetime",
    "time",
    "date",
    "timestamp",
    "year",
    "interval",
    "smalldatetime",
    "datetime2",
    "datetimeoffset"
  };

  /**
   * 数据库数字类型
   */
  String[] COLUMNTYPE_NUMBER = {
    "tinyint",
    "smallint",
    "mediumint",
    "int",
    "number",
    "integer",
    "bit",
    "bigint",
    "float",
    "double",
    "decimal",
    "numeric",
    "real",
    "double precision",
    "smallserial",
    "serial",
    "bigserial",
    "money",
    "smallmoney"
  };

  /**
   * BO对象 不需要添加字段
   */
  String[] COLUMNNAME_NOT_ADD = {
    "create_dept", "create_by", "del_flag", "update_by", "version", "tenant_id"
  };

  /**
   * BO对象 不需要编辑字段
   */
  String[] COLUMNNAME_NOT_EDIT = {
    "create_dept", "create_by", "del_flag", "update_by", "version", "tenant_id"
  };

  /**
   * VO对象 不需要返回字段
   */
  String[] COLUMNNAME_NOT_LIST = {
    "create_dept", "create_by", "create_by_name", "del_flag", "update_by", "update_by_name", "version", "tenant_id"
  };

  /**
   * BO对象 不需要查询字段
   */
  String[] COLUMNNAME_NOT_QUERY = {
    "id", "create_dept", "create_by", "del_flag", "update_by", "remark", "version", "tenant_id"
  };

  /**
   * Entity基类字段
   */
  String[] BASE_ENTITY = {
    "createBy", "createByName", "createTime", "updateBy", "updateByName", "updateTime", "tenantId"
  };

  /**
   * 文本框
   */
  String HTML_INPUT = "input";

  /**
   * 文本域
   */
  String HTML_TEXTAREA = "textarea";

  /**
   * 下拉框
   */
  String HTML_SELECT = "select";

  /**
   * 单选框
   */
  String HTML_RADIO = "radio";

  /**
   * 复选框
   */
  String HTML_CHECKBOX = "checkbox";

  /**
   * 日期控件
   */
  String HTML_DATETIME = "datetime";

  /**
   * 图片上传控件
   */
  String HTML_IMAGE_UPLOAD = "imageUpload";

  /**
   * 文件上传控件
   */
  String HTML_FILE_UPLOAD = "fileUpload";

  /**
   * 富文本控件
   */
  String HTML_EDITOR = "editor";

  /**
   * 字符串类型
   */
  String TYPE_STRING = "String";
  /**
   * json类型
   */
  String TYPE_JSON = "json";
  /**
   * json类型
   */
  String TYPE_JSON_JAVA = "Map<String, Object>";

  /**
   * 整型
   */
  String TYPE_INTEGER = "Integer";

  /**
   * 长整型
   */
  String TYPE_LONG = "Long";

  /**
   * 浮点型
   */
  String TYPE_DOUBLE = "Double";

  /**
   * 高精度计算类型
   */
  String TYPE_BIGDECIMAL = "BigDecimal";

  /**
   * Byte类型
   */
  String TYPE_BYTE = "Byte";

  /**
   * 时间类型
   */
  String TYPE_DATE = "Date";

  /**
   * 模糊查询
   */
  String QUERY_LIKE = "LIKE";

  /**
   * 相等查询
   */
  String QUERY_EQ = "EQ";

  /**
   * 需要
   */
  String REQUIRE = "1";
}
